Quality assurance is often an integral part of software development. For example, quality assurance personnel may test newly-developed software, identify defects contained within the software, and determine whether the software is of high enough quality to be released to end users.
Unfortunately, conventional quality assurance tools suffer from several shortcomings. For example, it is often difficult to prioritize the order in which identified defects are to be addressed (e.g., remedied) by software developers. Moreover, it is often difficult to objectively quantify the relative risk of addressing some defects over others.